unit untCadUsuarios;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, untAbsConsulta, Vcl.Menus, Vcl.ImgList,
  Vcl.StdCtrls, Vcl.Grids, Vcl.DBGrids, Vcl.ExtCtrls, Vcl.ComCtrls, Vcl.ToolWin,
  Data.DB, Data.Win.ADODB, Vcl.ActnList;

type
  TfrmCadUsuarios = class(TfrmAbsConsulta)
    qryUsuarios: TADOQuery;
    dtsUsuarios: TDataSource;
    qryUsuariosID: TAutoIncField;
    qryUsuariosNOME: TStringField;
    qryUsuariosLOGIN: TStringField;
    qryUsuariosDT_CADASTRO: TDateTimeField;
    qryUsuariosATIVO: TStringField;
    qryUsuariosNOME_REGIONAL: TStringField;
    qryUsuariosEXCLUIDO: TStringField;
    qryUsuariosIDUSUARIO_EXCLUSAO: TIntegerField;
    qryUsuariosDT_EXCLUSAO: TDateTimeField;
    procedure edtPesquisaKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure qryUsuariosDT_CADASTROGetText(Sender: TField; var Text: string;
      DisplayText: Boolean);
    procedure dtsUsuariosDataChange(Sender: TObject; Field: TField);
    procedure qryUsuariosAfterScroll(DataSet: TDataSet);
    procedure acAlterarExecute(Sender: TObject);
    procedure acIncluirExecute(Sender: TObject);
  private
    { Private declarations }
    procedure geraConsulta(const value : String);
  public
    { Public declarations }
  end;

var
  frmCadUsuarios: TfrmCadUsuarios;

implementation

{$R *.dfm}

uses untDTMPrincipal, untCadUsuariosEdicao;

{ TfrmCadUsuarios }

procedure TfrmCadUsuarios.acAlterarExecute(Sender: TObject);
var
  frm : TfrmCadUsuariosEdicao;
begin
  FInsert := False;
  try
    frm := TfrmCadUsuariosEdicao.Create(self, qryUsuariosID.AsInteger);
    frm.ShowModal();
  finally
    FreeAndNil(frm);
  end;
  inherited;
end;

procedure TfrmCadUsuarios.acIncluirExecute(Sender: TObject);
var
  frm : TfrmCadUsuariosEdicao;
begin
  FInsert := True;
  try
    frm := TfrmCadUsuariosEdicao.Create(self);
    frm.ShowModal();
  finally
    FreeAndNil(frm);
  end;
  inherited;
end;

procedure TfrmCadUsuarios.dtsUsuariosDataChange(Sender: TObject; Field: TField);
begin
  inherited;
  AtualizarBotoes();
end;

procedure TfrmCadUsuarios.edtPesquisaKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  inherited;
  if Key = 13 then
    geraConsulta(edtPesquisa.Text);
end;

procedure TfrmCadUsuarios.geraConsulta(const value: String);
var
  comandoSQL : TStringList;
begin
  try
    try
      comandoSQL := TStringList.Create;

      if cbxFiltro.Text = 'Login' then
         comandoSQL.Add(format(' AND U.LOGIN LIKE %s',[QuotedStr('%'+value+'%')]));

      if cbxFiltro.Text = 'Nome' then
         comandoSQL.Add(format(' AND U.NOME LIKE %s',[QuotedStr('%'+value+'%')]));

      if cbxFiltro.Text = 'Regional' then
         comandoSQL.Add(format(' AND R.NOME_FANTASIA LIKE %s',[QuotedStr('%'+value+'%')]));

       cdsAtual.Close;
       cdsAtual.SQL.Clear;
       cdsAtual.SQL.Add(FSQL+comandoSQL.Text);
       cdsAtual.Open();
     except
       cdsAtual.Close();
       cdsAtual.SQL.Clear();
       cdsAtual.SQL.Text:= FSQL;
       cdsAtual.Open();
       raise;
     end;
  finally
    FreeAndNil(comandoSQL);
  end;
end;

procedure TfrmCadUsuarios.qryUsuariosAfterScroll(DataSet: TDataSet);
begin
  inherited;
  AtualizarBotoes();
end;

procedure TfrmCadUsuarios.qryUsuariosDT_CADASTROGetText(Sender: TField;
  var Text: string; DisplayText: Boolean);
begin
  Text := FormatDateTime('DD/MM/YYYY',Sender.AsDateTime);
end;

end.
